home *** CD-ROM | disk | FTP | other *** search
/ Magnum One / Magnum One (Mid-American Digital) (Disc Manufacturing).iso / d15 / msoftfix.arc / RODENT.FIX < prev    next >
Text File  |  1990-08-03  |  3KB  |  80 lines

  1.  
  2. Microsoft Mouse COM port interrupt fix.
  3.  
  4. The Microsoft mouse driver makes a dangerous assumption when it
  5. finds a serial mouse attached to your computer.  If you only have
  6. two COM ports all will be transparently well.  But for those of you
  7. wanting to connect the mouse to COM3 or COM4 you run into a 
  8. situation that assumes COM3 is using INT 4 and COM4 uses INT 3.
  9. For most default installations this is correct, but what if you
  10. also want to use another interrupt driven serial port that
  11. uses the same interrupt vector.  You can't.  The mouse driver
  12. grabs it and hangs on.  The only way to correct it is to move
  13. that serial port to another interrupt vector, say INT 2.  The
  14. mouse driver runs and indicates that it installed, but all is
  15. not well, your mouse doesn't work.  The driver install ASSUMES
  16. a defacto STANDARD configuration and doesn't bother even checking!
  17.  
  18. To remedy the situation is an easy patch to a table in the mouse
  19. driver.  Use a file hex editor like NORTON or PCTOOLS and search
  20. MOUSE.COM or MOUSE.SYS for:
  21.  
  22.   F8 03 0C EF    ;Com 1
  23.   F8 02 0B F7    ;Com 2
  24.   E8 03 0C EF    ;Com 3
  25.   E8 02 0B F7    ;Com 4
  26.  
  27.  
  28. For version 7.00 MOUSE.COM this is at Offset 3468h.
  29. For version 7.00 MOUSE.SYS this is at Offset 34C0h.
  30. For version 7.04 MOUSE.COM this is at Offset 46BFh.
  31. For version 7.04 MOUSE.SYS this is at Offset 4717h.
  32.  
  33. If you are a Windows user then you will also need to patch Windows.
  34. For some reason Microsoft decided to have Windows drive the mouse
  35. itself so if you only use your mouse for Windows then you need not
  36. load the mouse driver before running Windows.
  37.  
  38. For version 2.11 Windows 386 the table is in WIN200.BIN.  The table is
  39. as described above execpt it only contains COM1 and COM2 port info.
  40. The table offset will vary from configuration to configuration.  WIN200.BIN
  41. is created during SETUP depending on the equipment configuration. 
  42. In any case the patch will be the same.
  43.  
  44. For version 3.0 Windows the table is in MOUSE.DRV at offset 82Ch.
  45.  
  46. The first two bytes of each entry are the serial ports base address.
  47.  
  48. The next byte is the actual interrupt vector.  The interrupt jumpers most
  49. of you are used to dealing with refer to the designations as they are
  50. assigned on the PC bus not the actual microprocessor vectors.  The bus
  51. interrupt requests are routed to an 8259 interrupt controller.  This
  52. device is offset from INT 0 by 8. So INT 2 (Bus) is in actuality INT 0Ah.
  53.  
  54. The last byte is a value that gets ANDed with the value on I/O port 21h
  55. which is the 8259 interrupt controller control port.  This is a bit mapped
  56. port which indicates which interrupts are pending.  The LSB is INT 0 and
  57. the MSB is INT 7.
  58.  
  59. For convenience these are the numbers you need to use for your interrupt
  60. choice:
  61.  
  62.  INT 2 - 0A FB
  63.  INT 3 - 0B F7
  64.  INT 4 - 0C EF
  65.  INT 5 - 0D BF
  66.  INT 7 - 0F 7F
  67.  
  68. So decide which port you are going to connect to, pick an interrupt and patch
  69. one of the entries.  I used COM3 and INT2 and patched the first table
  70. entry (COM1) as:
  71.  
  72.   0E 03 0A FB
  73.  
  74. As for other versions of Windows or other versions of mouse drivers I
  75. would assume the same patch would work just go in and look for it!
  76.  
  77.  Dave Karr 
  78.  
  79.  Email via Exec-PC
  80.